package com.bookmall.member.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bookmall.common.exception.LoginException;
import com.bookmall.member.domain.MemberInfo;
import com.bookmall.member.domain.vo.*;

/**
 * @Description:
 * @Author 胡菜鸡
 * @Create 2022-04-01-9:51
 */
public interface IMemberInfoService extends IService<MemberInfo> {
    /**
     * 会员注册（向数据库中保存一条会员信息）
     * @author 胡菜鸡
     * @date 2022/4/2 16:49
     */
    int register(RegisterUserVo registerUserVo) throws LoginException;

    /**
     * 会员登录
     * @author 胡菜鸡
     * @date 2022/4/3 16:46
     */
    MemberInfo login(LoginUserVo loginUserVo) throws LoginException;

    /**
     * 社交登录
     * @author 胡菜鸡
     * @date 2022/4/4 19:28
     */
    MemberInfo login(SocialUser socialUser) throws LoginException;

    /**
     * 检查学号是否存在
     * @author 胡菜鸡
     * @date 2022/4/2 17:18
     * @return true为存在
     */
    boolean checkStuIdUniques(String stuId);

    /**
     * 检查手机号是否存在
     * @author 胡菜鸡
     * @date 2022/4/2 17:18
     * @return true为存在
     */
    boolean checkPhoneUniques(String phone);

    /**
     * 检查用户名是否存在
     * @author 胡菜鸡
     * @date 2022/4/2 17:18
     * @return true为存在
     */
    boolean checkUsernameUniques(String username);

    /**
     * 通过学生学号查询会员详细信息
     * @author 胡菜鸡
     * @date 2022/4/8 17:36
     */
    MemberInfo selectMemberInfoByStuId(String stuId);

    /**
     * 获取个人账户相关信息
     * @author 胡菜鸡
     * @date 2022/4/27 15:44
     */
    PersonInfoVo getPersonInfo(PersonParamVo personParamVo);

    /**
     * 保存一个用户
     * @author 胡菜鸡
     * @date 2022/5/6 13:43
     */
    int saveMember(MemberInfo memberInfo);

    /**
     * 修改一个用户
     * @author 胡菜鸡
     * @date 2022/5/6 14:51
     */
    int updateMember(MemberInfo memberInfo);
}
